<html>
<head><meta charset="utf-8"><title>specialization first step chalk#219 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html">specialization first step chalk#219</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="164820849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164820849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164820849">(May 03 2019 at 19:01)</a>:</h4>
<p>So I created an issue <a href="https://github.com/rust-lang-nursery/chalk/issues/219" target="_blank" title="https://github.com/rust-lang-nursery/chalk/issues/219">chalk#219</a> to describe some simple first steps on specialization. <span class="user-mention" data-user-id="117350">@Sunjay Varma</span>, you've previously expressed interest -- and this is indeed quite similar to the work you did on coherence earlier. Take a look.</p>



<a name="164820942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164820942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164820942">(May 03 2019 at 19:02)</a>:</h4>
<p>Perfect. I was just about to start this today. I'll take a look :)</p>



<a name="164820972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164820972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164820972">(May 03 2019 at 19:02)</a>:</h4>
<p>I realize that I left some bits out -- like how do we determine <em>if</em> impl A specializes impl B</p>



<a name="164820999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164820999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164820999">(May 03 2019 at 19:03)</a>:</h4>
<p>(That's actually true I have a task for it <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span>) <a href="/user_uploads/4715/g-Btb4Y6iJOIUxgGVXRNqPON/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/g-Btb4Y6iJOIUxgGVXRNqPON/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/g-Btb4Y6iJOIUxgGVXRNqPON/pasted_image.png"></a></div>



<a name="164821095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821095">(May 03 2019 at 19:04)</a>:</h4>
<blockquote>
<p>I realize that I left some bits out -- like how do we determine <em>if</em> impl A specializes impl B</p>
</blockquote>
<p>Are you going to add this to the issue or should we meet at some point (not today) to discuss everything?</p>



<a name="164821474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821474">(May 03 2019 at 19:10)</a>:</h4>
<p>I can add some notes; the TL;dr is that we have <em>some</em> Code for this, and i'd mostly like to 'ignore it' to start</p>



<a name="164821476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821476">(May 03 2019 at 19:10)</a>:</h4>
<p>i.e., add some hacky sol'n if needed</p>



<a name="164821479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821479">(May 03 2019 at 19:10)</a>:</h4>
<p>then circle back to it</p>



<a name="164821489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821489">(May 03 2019 at 19:10)</a>:</h4>
<p>(like you could imagine that we just hard-code it for now in some way, in the limit)</p>



<a name="164821807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821807">(May 03 2019 at 19:14)</a>:</h4>
<p>Are you talking about the code we discussed in that meeting we had a few months ago?</p>



<a name="164821808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164821808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164821808">(May 03 2019 at 19:14)</a>:</h4>
<p>Here's the doc for that: <a href="https://paper.dropbox.com/doc/Chalk-and-Specialization--AcYohtaLoeyk9kvGWaqEYnoOAg-urrCptcGmI7PA4pYaF5yn" target="_blank" title="https://paper.dropbox.com/doc/Chalk-and-Specialization--AcYohtaLoeyk9kvGWaqEYnoOAg-urrCptcGmI7PA4pYaF5yn">https://paper.dropbox.com/doc/Chalk-and-Specialization--AcYohtaLoeyk9kvGWaqEYnoOAg-urrCptcGmI7PA4pYaF5yn</a></p>



<a name="164822473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822473">(May 03 2019 at 19:22)</a>:</h4>
<p>So it looks like chalk doesn't support the <code>default</code> keyword yet</p>



<a name="164822494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822494">(May 03 2019 at 19:22)</a>:</h4>
<p>Would a good step (in addition to the design) be to add support for that?</p>



<a name="164822753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822753">(May 03 2019 at 19:25)</a>:</h4>
<p>Oh actually it looks like we don't even support trait methods?</p>



<a name="164822757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822757">(May 03 2019 at 19:25)</a>:</h4>
<p>Maybe I'm reading the code wrong...</p>



<a name="164822769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822769">(May 03 2019 at 19:25)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="n">Impl</span>: <span class="nc">Impl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="o">&lt;</span><span class="n">external</span>:<span class="nc">UpstreamKeyword</span><span class="o">?&gt;</span><span class="w"> </span><span class="s">&quot;impl&quot;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">p</span>:<span class="nc">Angle</span><span class="o">&lt;</span><span class="n">ParameterKind</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">mark</span>:<span class="s">&quot;!&quot;</span><span class="o">?&gt;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">t</span>:<span class="nc">Id</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">a</span>:<span class="nc">Angle</span><span class="o">&lt;</span><span class="n">Parameter</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="s">&quot;for&quot;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">s</span>:<span class="nc">Ty</span><span class="o">&gt;</span><span class="w"></span>
<span class="w">        </span><span class="o">&lt;</span><span class="n">w</span>:<span class="nc">QuantifiedWhereClauses</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;{&quot;</span><span class="w"> </span><span class="o">&lt;</span><span class="n">assoc</span>:<span class="nc">AssocTyValue</span><span class="o">*&gt;</span><span class="w"> </span><span class="s">&quot;}&quot;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"></span>
</pre></div>



<a name="164822821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822821">(May 03 2019 at 19:26)</a>:</h4>
<p>It looks like we only parse associated types within the curly braces of an impl</p>



<a name="164822858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822858">(May 03 2019 at 19:26)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> do you think it's necessary for chalk to have support for all of this in order to add specialization? Or maybe you want to mark impls as default instead?</p>



<a name="164822867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822867">(May 03 2019 at 19:27)</a>:</h4>
<p>That might mess up the semantics</p>



<a name="164822883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822883">(May 03 2019 at 19:27)</a>:</h4>
<p>/me needs to read the RFC and blog posts again <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>



<a name="164822975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822975">(May 03 2019 at 19:28)</a>:</h4>
<p>Yeah I definitely think we need to add <code>default type</code> and <code>default fn</code> to chalk</p>



<a name="164822999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164822999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164822999">(May 03 2019 at 19:28)</a>:</h4>
<p>Looking at the documents we need that in order for any of this to be tested within chalk</p>



<a name="164823124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164823124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164823124">(May 03 2019 at 19:30)</a>:</h4>
<p>From <a href="https://github.com/rust-lang/chalk/issues/219" target="_blank" title="https://github.com/rust-lang/chalk/issues/219">https://github.com/rust-lang/chalk/issues/219</a> :</p>
<blockquote>
<p>Specialization does not effect whether or not a trait is implemented. Therefore, the "lowering" for an impl ought to be unaffected -- overlapping impls simply mean more than one way to prove the same set of types, and the solver ought to be able to handle that.</p>
</blockquote>
<p>Maybe I'm misunderstanding, but I disagree. Isn't the <code>default</code> keyword required for specialization to even be considered? This <em>should</em> affect things or else we risk every impl being specialized even when that isn't intended.</p>



<a name="164824045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824045">(May 03 2019 at 19:43)</a>:</h4>
<p>I don't believe that it needs to effect whether or not the <code>Implemented</code> predicate is satisfied</p>



<a name="164824054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824054">(May 03 2019 at 19:43)</a>:</h4>
<p>It will certainly effect the coherence rules that get enforced</p>



<a name="164824083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824083">(May 03 2019 at 19:43)</a>:</h4>
<p>Given that two impls overlap, you have to determine if they are <em>allowed</em> to overlap, and that question is affected by whether <code>default</code> is supplied</p>



<a name="164824144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824144">(May 03 2019 at 19:44)</a>:</h4>
<blockquote>
<p>Oh actually it looks like we don't even support trait methods?</p>
</blockquote>
<p>trait methods aren't particularly relevant</p>



<a name="164824163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824163">(May 03 2019 at 19:44)</a>:</h4>
<blockquote>
<p>So it looks like chalk doesn't support the <code>default</code> keyword yet</p>
</blockquote>
<p>yes, good point, we should probably add that first, yes. it would be applied to associated types, at least to start</p>



<a name="164824193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824193">(May 03 2019 at 19:45)</a>:</h4>
<p>I didn't get as far, in that issue, as specifying concrete steps...let's see...</p>



<a name="164824886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824886">(May 03 2019 at 19:54)</a>:</h4>
<blockquote>
<p>/me needs to read the RFC and blog posts again <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>
</blockquote>
<p>BTW, <span class="user-mention" data-user-id="117350">@Sunjay Varma</span>, I think that -- for the purposes of this first step -- the blog posts are mostly not relevant. They will become relevant later on. They basically define rules that we can enforce that specify <em>when</em> specialization is legal -- but this first step is more focused on what to do if you <em>have</em> specialization (and we assume it's legal for now).</p>



<a name="164824909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164824909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164824909">(May 03 2019 at 19:55)</a>:</h4>
<p>But re-reading the RFC seems good</p>



<a name="164826982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164826982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164826982">(May 03 2019 at 20:22)</a>:</h4>
<blockquote>
<p>But re-reading the RFC seems good</p>
</blockquote>
<p>Doing that now :)</p>



<a name="164827611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164827611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164827611">(May 03 2019 at 20:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Do you want the <code>default</code> flag in <code>AssociatedTyValue</code>? I've added it to the parser/AST but maybe I should wait to add it to other things</p>



<a name="164828179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164828179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164828179">(May 03 2019 at 20:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> This should be very easy to review: <a href="https://github.com/rust-lang/chalk/pull/221" target="_blank" title="https://github.com/rust-lang/chalk/pull/221">https://github.com/rust-lang/chalk/pull/221</a></p>



<a name="164861234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/specialization%20first%20step%20chalk%23219/near/164861234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/specialization.20first.20step.20chalk.23219.html#164861234">(May 04 2019 at 10:25)</a>:</h4>
<blockquote>
<p>Do you want the <code>default</code> flag in <code>AssociatedTyValue</code>? I've added it to the parser/AST but maybe I should wait to add it to other things</p>
</blockquote>
<p>This is the first place; I'm not worrying about modeling default impls yet (they are kind of a different thing...) but eventually we'll probably want to do that, too</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>